// 接口枚举定义
export const ExchangePlatforms = {
  Buff: "BUFF",
  BuffYyyp: "BUFF-YYYP",
  Yyyp: "YYYP",
} as const;

export type ExchangePlatforms = typeof ExchangePlatforms[keyof typeof ExchangePlatforms];

export const SortOptions = {
  ProfitRateAsc: 0,      // 收益率升序
  ProfitRateDesc: 1,     // 收益率降序
} as const;

export type SortOptions = typeof SortOptions[keyof typeof SortOptions];

export const BuyOptions = {
  LowestPrice: 0,        // 最低价格
  BestSeller: 1,         // 最佳卖家
} as const;

export type BuyOptions = typeof BuyOptions[keyof typeof BuyOptions];

// API请求头部
export interface Header {
  ApiToken: string;
  [property: string]: unknown;
}

// ExchangeBody配置参数 - 严格按照API文档定义
export interface ExchangeBody {
  // 必需字段
  page_index: number; // 当前页码数，最小值为1
  res: number; // 获取结果：0=Steam余额（挂刀），1=平台余额（反向挂刀）
  platforms: 'BUFF-YYYP' | 'BUFF' | 'YYYP'; // 平台选择
  sort_by: number; // 出售方案选择：0=在售价首先，1=求购价优先
  
  // 可选字段
  min_price?: number; // 价格区间最小值，默认为1
  max_price?: number; // 价格区间最大值，默认为5000
  text?: string; // 搜索关键字，支持饰品名称关键字过滤
  turnover?: number; // Steam日成交量，筛选大于等于该日成交量，最小值为0
  buy?: number; // 购买方案选择：0=在售价首先，1=求购价优先（仅反向挂刀时需要）
}

// 挂刀行情响应结构
export interface ExchangeResponse {
  code: number;
  data: ExchangeItem[];
  msg: string;
  [property: string]: unknown;
}

// 挂刀行情物品数据 - 严格按照API文档定义
export interface ExchangeItem {
  // 基础信息
  id: number; // 饰品id
  name: string; // 饰品中文名称
  market_hash_name: string; // Steam市场名称
  img: string; // 饰品图片
  max_price: number; // 平台价格最大值
  turnover_number: number; // Steam当日成交量
  
  // Steam平台数据
  steam_buy_num: number; // Steam求购数量
  steam_buy_price: number; // Steam求购价
  steam_sell_num: number; // Steam在售数量
  steam_sell_price: number; // Steam在售价
  
  // Buff平台数据
  buff_id: number; // Buff平台饰品id
  buff_buy_num: number; // Buff求购数量
  buff_buy_price: number; // Buff求购价
  buff_sell_num: number; // Buff在售数量
  buff_sell_price: number; // Buff在售价
  
  // 悠悠有品平台数据
  yyyp_id: number; // YYYP平台饰品id
  yyyp_buy_num: number; // YYYP求购数量
  yyyp_buy_price: number; // YYYP求购价
  yyyp_sell_num: number; // YYYP在售数量
  yyyp_sell_price: number; // YYYP在售价
}

// API配置
export interface ApiConfig {
  apiToken: string;
}

// UI偏好设置
export interface UiPreferences {
  theme: string;
  pageSize: number;
  collapsedPanels?: string[]; // 存储折叠面板的状态
}